/**
 * 封装 axios 请求模块
 */
import axios from 'axios'
import JSONBig from 'json-bigint'
// 导入进度条显示的包 NProgress 对应的js 和css
import NProgress from 'nprogress'
// var json = '{ "value" : 9223372036854775807, "v2": 123 }'

// console.log(jsonBig.parse(json))
const request = axios.create({
  // 接口的基准路径
  baseURL: 'http://192.168.14.75:9090/api', // 基础路径
  transformResponse: [function (data) {
    try {
      // 如果转换成功则返回转换的数据结果
      return JSONBig.parse(data)
    } catch (err) {
      // 如果转换失败，则包装为统一数据格式并返回
      return {
        data
      }
    }
  }]
})
// axios请求拦截
// 在 request 拦截器中展示进度条 NProgress.start()
request.interceptors.request.use(config => {
  // console.log(config)
  NProgress.start()
  // 为请求头对象，添加Token验证的Authorization字段
  config.headers.Authorization = window.sessionStorage.getItem('token')
  // 在最后必须 return config
  return config
})

// 在 response 拦截器中,隐藏进度条 NProgress.done()
request.interceptors.response.use(config => {
  NProgress.done()
  return config
})

// 响应拦截器
export default request
